"""
给你一个整数 x ，如果 x 是一个回文整数，返回 true ；否则，返回 false 。
回文数是指正序（从左向右）和倒序（从右向左）读都是一样的整数

Given an integer x, return true if x is a palindrome, and false otherwise.

"""
class Solution(object):
    def isPalindrome(x):
        """
        :type x: int
        :rtype: bool
        一般方法是将数字转换为字符串反转之后进行比较：
            tempStr = str(x)
            return True if tempStr == tempStr[::-1] else False
            转换和反转耗时比较高
        本方法的判断条件参见day7，在day7的基础上进行了些许改进，很简单所以请自行研究
        """
        if x < 0:
            return False
        elif x%10 == 0:
            return False
        tempReverse = 0
        while 1:
            if x == tempReverse:
                return True
            elif x < tempReverse:
                tempReverse //= 10
                if x == tempReverse:
                    return True
                return False
            tempReverse = tempReverse*10 + x % 10
            x //= 10
print(Solution.isPalindrome(9))